source "helpers.tcl"

read_lef sky130hd/sky130hd.tlef
read_lef sky130hd/sky130_fd_sc_hd_merged.lef
read_lef skywater130_io_ef/lef/sky130_ef_io__com_bus_slice_10um.lef
read_lef skywater130_io_ef/lef/sky130_ef_io__com_bus_slice_1um.lef
read_lef skywater130_io_ef/lef/sky130_ef_io__com_bus_slice_20um.lef
read_lef skywater130_io_ef/lef/sky130_ef_io__com_bus_slice_5um.lef
read_lef skywater130_io_ef/lef/sky130_ef_io__connect_vcchib_vccd_and_vswitch_vddio_slice_20um.lef
read_lef skywater130_io_ef/lef/sky130_ef_io__corner_pad.lef
read_lef skywater130_io_ef/lef/sky130_ef_io__disconnect_vccd_slice_5um.lef
read_lef skywater130_io_ef/lef/sky130_ef_io__disconnect_vdda_slice_5um.lef
read_lef skywater130_io_ef/lef/sky130_ef_io__gpiov2_pad_wrapped.lef
read_lef skywater130_io_ef/lef/sky130_ef_io__vccd_hvc_pad.lef
read_lef skywater130_io_ef/lef/sky130_ef_io__vccd_lvc_pad.lef
read_lef skywater130_io_ef/lef/sky130_ef_io__vdda_hvc_pad.lef
read_lef skywater130_io_ef/lef/sky130_ef_io__vdda_lvc_pad.lef
read_lef skywater130_io_ef/lef/sky130_ef_io__vddio_hvc_pad.lef
read_lef skywater130_io_ef/lef/sky130_ef_io__vddio_lvc_pad.lef
read_lef skywater130_io_ef/lef/sky130_ef_io__vssa_hvc_pad.lef
read_lef skywater130_io_ef/lef/sky130_ef_io__vssa_lvc_pad.lef
read_lef skywater130_io_ef/lef/sky130_ef_io__vssd_hvc_pad.lef
read_lef skywater130_io_ef/lef/sky130_ef_io__vssd_lvc_pad.lef
read_lef skywater130_io_ef/lef/sky130_ef_io__vssio_hvc_pad.lef
read_lef skywater130_io_ef/lef/sky130_ef_io__vssio_lvc_pad.lef
read_lef skywater130_io_ef/lef/sky130_fd_io__top_xres4v2.lef

read_liberty skywater130_io_ef/lib/sky130_dummy_io.lib
read_liberty sky130hd/sky130_fd_sc_hd__tt_025C_1v80.lib

read_verilog skywater130_caravel/chip.v
link_design chip_io

initialize_floorplan \
  -die_area "0 0 3588 5188" \
  -core_area "250 250 3338 4938" \
  -site unithd

make_tracks

catch { place_io_terminals } err
puts $err
